#include "widget.h"
#include "ui_widget.h"
#include <QRegExpValidator>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    QRegExp regExp("^1\\d{10}$");
    //设置正则表达式，^表示匹配起始位置，这边是1，表示第一个号码必须为1，\d表示数字字符匹配。等效于 [0-9]，{10}表示有10个数字字符，$表示结束
    ui->lineEdit_passward->setValidator(new QRegExpValidator(regExp));//进行设置验证器，基于正则表达式来完成
}

Widget::~Widget()
{
    delete ui;
}

//当单行输入框的文本进行修改时会被触发（不会被代码修改二触发）
void Widget::on_lineEdit_passward_textEdited(const QString &arg1)
{
    QString passwd(arg1);
    int pos=0;
    //validator函数返回的是一个设置的验证器，validate函数是一个验证函数
    //enum State { Invalid, Intermediate, Acceptable }三种状态
    if(ui->lineEdit_passward->validator()->validate(passwd,pos)==QValidator::Acceptable)
    {
        //验证通过
        ui->pushButton->setEnabled(true);
    }
    else
    {
        //验证失败
        ui->pushButton->setEnabled(false);
    }
}
